package com.chixing.Review;

import java.util.Arrays;

public class Arr1 {
    public static void main(String[] args) {
//        练习1：将10个任意小数放置数组中，并将其累加获得总和；
//        获得数组中最大值。foreach循环（JDK1.5引进）
        double[] arr1={1.2,1.5,4.5,6.2,2.4,5.2};
        double sum=0;
        double max=arr1[0];

        for(int i=0;i<arr1.length;i++){
            if(arr1[i]>max){
                max=arr1[i];

            }
            sum+=arr1[i];
        }
        System.out.println("一维数组的总和是 ："+ sum);
        System.out.println("一维数组的最大值是 ："+ max);

//        练习2：数组中查询最大值，最小值，排序
        int[][] arr2={{2,3,4,5},{4,5,5,8}};
        int max2=arr2[0][0];
        int min2=arr2[0][0];
        int[] arr=new int[8];
        int count =0;
        for(int i=0;i< arr2.length;i++){
            for(int j=0;j< arr2[i].length;j++){
                if(arr2[i][j]>max2){
                    max2=arr2[i][j];
                }
                if(arr2[i][j]<min2){
                    min2=arr2[i][j];
                }
                arr[count++]=arr2[i][j];
            }

        }
        System.out.println("二维数组的最大值是 ："+ max2);
        System.out.println("二维数组的最小值是 ："+ min2);
        System.out.println(Arrays.toString(arr));
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr.length-i-1;j++){
                if(arr[j+1]<arr[j]){
                    int temp=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=temp;
                }
            }
            System.out.print(" " + arr[i] + ",");
        }

        System.out.println("\t");

        //        判断数组中是否包含某一个值
        int [] a={12,15,13,11,10};
        int e=15;
        contain(a,e);

        /**
         * 求n!
         * 方法内部调用自己当前方法，称之为 递归 === 一定可以用循环实现
         * @param n  要求的数值
         * @return  返回n阶层的结果
         */
        int num=5;
        factorial(num);


    }
//        判断数组中是否包含某一个值
   public static void contain(int[] arr,int ele){
        for(int i=0;i<arr.length;i++){
            if(arr[i]==ele)
                System.out.println(arr[i]);
//                return true;
        }
//        return false;
   }
    /**
     * 求n!
     * 方法内部调用自己当前方法，称之为 递归 === 一定可以用循环实现
     * @param n  要求的数值
     */
    public static int factorial(int n){
        if((n==0 )|| (n==1)){
//            System.out.println(1);
            return 1;
        }else{
            int sum=n*factorial(n-1);
//            System.out.print(sum);
            return sum;
        }


    }










}
